break;
}
case GTK_IMAGE_EMPTY:
- case GTK_IMAGE_PIXBUF:
default:
{
*height = -1;
case GTK_IMAGE_SURFACE:
g_object_notify (G_OBJECT (cellpixbuf), "surface");
break;
- case GTK_IMAGE_PIXBUF:
- g_object_notify (G_OBJECT (cellpixbuf), "pixbuf");
- break;
case GTK_IMAGE_ICON_NAME:
g_object_notify (G_OBJECT (cellpixbuf), "icon-name");
break;
widget);
_gtk_icon_helper_set_force_scale_pixbuf (icon_helper, TRUE);
_gtk_icon_helper_set_definition (icon_helper, priv->image_def);
- if (gtk_image_definition_get_storage_type (priv->image_def) != GTK_IMAGE_PIXBUF)
+ if (gtk_image_definition_get_storage_type (priv->image_def) != GTK_IMAGE_SURFACE)
_gtk_icon_helper_set_icon_size (icon_helper, priv->icon_size);
}
case GTK_IMAGE_EMPTY:
case GTK_IMAGE_ANIMATION:
- case GTK_IMAGE_PIXBUF:
default:
g_assert_not_reached ();
break;
return scale_pixmap;
}
-static cairo_surface_t *
-ensure_surface_from_pixbuf (GtkIconHelper *self,
- GtkCssStyle *style,
- gint scale,
- GdkPixbuf *orig_pixbuf,
- gint orig_scale)
-{
- gint width, height;
- cairo_surface_t *surface;
- GdkPixbuf *pixbuf;
-
- if (get_pixbuf_size (self,
- scale,
- orig_pixbuf,
- orig_scale,
- &width, &height, &scale))
- pixbuf = gdk_pixbuf_scale_simple (orig_pixbuf,
- width, height,
- GDK_INTERP_BILINEAR);
- else
- pixbuf = g_object_ref (orig_pixbuf);
-
- surface = gdk_cairo_surface_create_from_pixbuf (pixbuf, scale, _gtk_widget_get_window (self->owner));
- g_object_unref (pixbuf);
-
- return surface;
-}
-
static cairo_surface_t *
ensure_surface_for_gicon (GtkIconHelper *self,
GtkCssStyle *style,
surface = ensure_surface_from_surface (self, gtk_image_definition_get_surface (self->def));
break;
- case GTK_IMAGE_PIXBUF:
- surface = ensure_surface_from_pixbuf (self,
- gtk_css_node_get_style (self->node),
- scale,
- gtk_image_definition_get_pixbuf (self->def),
- gtk_image_definition_get_scale (self->def));
- break;
-
case GTK_IMAGE_ICON_NAME:
if (self->use_fallback)
gicon = g_themed_icon_new_with_default_fallbacks (gtk_image_definition_get_icon_name (self->def));
gicon = g_themed_icon_new (gtk_image_definition_get_icon_name (self->def));
break;
case GTK_IMAGE_EMPTY:
- case GTK_IMAGE_PIXBUF:
case GTK_IMAGE_ANIMATION:
case GTK_IMAGE_SURFACE:
default:
gint *width_out,
gint *height_out)
{
- gint width, height, scale;
+ gint width, height;
width = height = 0;
&height);
break;
- case GTK_IMAGE_PIXBUF:
- get_pixbuf_size (self,
- gtk_widget_get_scale_factor (self->owner),
- gtk_image_definition_get_pixbuf (self->def),
- gtk_image_definition_get_scale (self->def),
- &width, &height, &scale);
- width = (width + scale - 1) / scale;
- height = (height + scale - 1) / scale;
- break;
-
case GTK_IMAGE_ANIMATION:
{
GdkPixbufAnimation *animation = gtk_image_definition_get_animation (self->def);
_gtk_icon_helper_set_icon_size (self, icon_size);
}
-void
-_gtk_icon_helper_set_pixbuf (GtkIconHelper *self,
- GdkPixbuf *pixbuf)
-{
- gtk_icon_helper_take_definition (self, gtk_image_definition_new_pixbuf (pixbuf, 1));
-}
-
void
_gtk_icon_helper_set_animation (GtkIconHelper *self,
GdkPixbufAnimation *animation)
return self->def;
}
-GdkPixbuf *
-_gtk_icon_helper_peek_pixbuf (GtkIconHelper *self)
-{
- return gtk_image_definition_get_pixbuf (self->def);
-}
-
GIcon *
_gtk_icon_helper_peek_gicon (GtkIconHelper *self)
{
{
switch (gtk_image_definition_get_storage_type (self->def))
{
- case GTK_IMAGE_PIXBUF:
- gtk_icon_helper_take_definition (self,
- gtk_image_definition_new_pixbuf (gtk_image_definition_get_pixbuf (self->def),
- scale));
- break;
-
case GTK_IMAGE_ANIMATION:
gtk_icon_helper_take_definition (self,
gtk_image_definition_new_animation (gtk_image_definition_get_animation (self->def),
void _gtk_icon_helper_set_gicon (GtkIconHelper *self,
GIcon *gicon,
GtkIconSize icon_size);
-void _gtk_icon_helper_set_pixbuf (GtkIconHelper *self,
- GdkPixbuf *pixbuf);
void _gtk_icon_helper_set_pixbuf_scale (GtkIconHelper *self,
int scale);
void _gtk_icon_helper_set_animation (GtkIconHelper *self,
gint _gtk_icon_helper_get_pixel_size (GtkIconHelper *self);
gboolean _gtk_icon_helper_get_use_fallback (GtkIconHelper *self);
-GdkPixbuf *_gtk_icon_helper_peek_pixbuf (GtkIconHelper *self);
GIcon *_gtk_icon_helper_peek_gicon (GtkIconHelper *self);
GdkPixbufAnimation *_gtk_icon_helper_peek_animation (GtkIconHelper *self);
cairo_surface_t *_gtk_icon_helper_peek_surface (GtkIconHelper *self);
case GTK_IMAGE_SURFACE:
g_object_notify_by_pspec (G_OBJECT (image), image_props[PROP_SURFACE]);
break;
- case GTK_IMAGE_PIXBUF:
- g_warning ("pixbuf not supported");
- break;
case GTK_IMAGE_EMPTY:
default:
break;
/**
* GtkImageType:
* @GTK_IMAGE_EMPTY: there is no image displayed by the widget
- * @GTK_IMAGE_PIXBUF: the widget contains a #GdkPixbuf
* @GTK_IMAGE_ANIMATION: the widget contains a #GdkPixbufAnimation
* @GTK_IMAGE_ICON_NAME: the widget contains a named icon.
* This image type was added in GTK+ 2.6
* Describes the image data representation used by a #GtkImage. If you
* want to get the image from the widget, you can only get the
* currently-stored representation. e.g. if the
- * gtk_image_get_storage_type() returns #GTK_IMAGE_PIXBUF, then you can
- * call gtk_image_get_pixbuf(). For empty images, you can request any
+ * gtk_image_get_storage_type() returns #GTK_IMAGE_SURFACE, then you can
+ * call gtk_image_get_surface(). For empty images, you can request any
* storage type (call any of the "get" functions), but they will all
* return %NULL values.
- *
- * Note: GTK_IMAGE_PIXBUF is not not supported as storage by GtkImage. Any
- * pixbuf set on the GtkImage will be converted to a surface and can only
- * be read back as a GTK_IMAGE_SURFACE.
*/
typedef enum
{
GTK_IMAGE_EMPTY,
- GTK_IMAGE_PIXBUF,
GTK_IMAGE_ANIMATION,
GTK_IMAGE_ICON_NAME,
GTK_IMAGE_GICON,
#include "gtkimagedefinitionprivate.h"
typedef struct _GtkImageDefinitionEmpty GtkImageDefinitionEmpty;
-typedef struct _GtkImageDefinitionPixbuf GtkImageDefinitionPixbuf;
typedef struct _GtkImageDefinitionStock GtkImageDefinitionStock;
typedef struct _GtkImageDefinitionAnimation GtkImageDefinitionAnimation;
typedef struct _GtkImageDefinitionIconName GtkImageDefinitionIconName;
gint ref_count;
};
-struct _GtkImageDefinitionPixbuf {
- GtkImageType type;
- gint ref_count;
-
- GdkPixbuf *pixbuf;
- int scale;
-};
-
struct _GtkImageDefinitionStock {
GtkImageType type;
gint ref_count;
{
GtkImageType type;
GtkImageDefinitionEmpty empty;
- GtkImageDefinitionPixbuf pixbuf;
GtkImageDefinitionStock stock;
GtkImageDefinitionAnimation animation;
GtkImageDefinitionIconName icon_name;
{
static gsize sizes[] = {
sizeof (GtkImageDefinitionEmpty),
- sizeof (GtkImageDefinitionPixbuf),
sizeof (GtkImageDefinitionStock),
sizeof (GtkImageDefinitionAnimation),
sizeof (GtkImageDefinitionIconName),
return def;
}
-GtkImageDefinition *
-gtk_image_definition_new_pixbuf (GdkPixbuf *pixbuf,
- int scale)
-{
- GtkImageDefinition *def;
-
- if (pixbuf == NULL || scale <= 0)
- return NULL;
-
- def = gtk_image_definition_alloc (GTK_IMAGE_PIXBUF);
- def->pixbuf.pixbuf = g_object_ref (pixbuf);
- def->pixbuf.scale = scale;
-
- return def;
-}
-
GtkImageDefinition *
gtk_image_definition_new_animation (GdkPixbufAnimation *animation,
int scale)
case GTK_IMAGE_EMPTY:
g_assert_not_reached ();
break;
- case GTK_IMAGE_PIXBUF:
- g_object_unref (def->pixbuf.pixbuf);
- break;
case GTK_IMAGE_ANIMATION:
g_object_unref (def->animation.animation);
break;
case GTK_IMAGE_ICON_NAME:
case GTK_IMAGE_GICON:
return 1;
- case GTK_IMAGE_PIXBUF:
- return def->pixbuf.scale;
case GTK_IMAGE_ANIMATION:
return def->animation.scale;
}
}
-GdkPixbuf *
-gtk_image_definition_get_pixbuf (const GtkImageDefinition *def)
-{
- if (def->type != GTK_IMAGE_PIXBUF)
- return NULL;
-
- return def->pixbuf.pixbuf;
-}
-
GdkPixbufAnimation *
gtk_image_definition_get_animation (const GtkImageDefinition *def)
{
typedef union _GtkImageDefinition GtkImageDefinition;
GtkImageDefinition * gtk_image_definition_new_empty (void);
-GtkImageDefinition * gtk_image_definition_new_pixbuf (GdkPixbuf *pixbuf,
- int scale);
GtkImageDefinition * gtk_image_definition_new_animation (GdkPixbufAnimation *animation,
int scale);
GtkImageDefinition * gtk_image_definition_new_icon_name (const char *icon_name);
GtkImageType gtk_image_definition_get_storage_type (const GtkImageDefinition *def);
gint gtk_image_definition_get_scale (const GtkImageDefinition *def);
-GdkPixbuf * gtk_image_definition_get_pixbuf (const GtkImageDefinition *def);
GdkPixbufAnimation * gtk_image_definition_get_animation (const GtkImageDefinition *def);
const gchar * gtk_image_definition_get_icon_name (const GtkImageDefinition *def);
GIcon * gtk_image_definition_get_gicon (const GtkImageDefinition *def);